package com.levelup.java.exercises.beginner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
/**
* This program is a solution to the magic date program.
*
* @author Justin Musgrove
* @see <a href='http://www.leveluplunch.com/java/exercises/magic-dates/'>Magic
* dates</a>
*/
public class MagicDates {
public static void main(String[] args) {
// Create a Scanner object for keyboard input.
Scanner keyboard = new Scanner(System.in);
// Ask user for input
System.out.print("Enter date in mm/dd/yyyy format:");
String dateAsString = keyboard.next();
// close stream
keyboard.close();
// Parse string to date
LocalDate date = LocalDate.parse(dateAsString,
DateTimeFormatter.ofPattern("MM/dd/yyyy"));
// check date and display output
if (magicDate(date)) {
System.out.println("That date is magic!");
} else {
System.out.println("Sorry, nothing magic about that date...");
}
}
/**
* Method will check if a date is magic define by month * date = last two
* digets of year
*
* @param date
* @return true if the date is magic
*/
public static boolean magicDate(LocalDate date) {
int month = date.getMonth().getValue();
int day = date.getDayOfMonth();
int year = date.getYear();
String yearAsString = String.valueOf(year);
String lastTwoDigits = "0";
if (yearAsString.length() == 4) {
lastTwoDigits = yearAsString.substring(2);
}
return (month * day) == Integer.parseInt(lastTwoDigits);
}
}